The present invention relates to the field of monochromatic output devices such as printers and video monitors. More particularly, the invention relates to converting color data to gray data for output on such devices.
Conventional monochromatic output devices such as laser printers, inkjet printers, video monitors, etc. employ several standard methods to convert color data to gray data. Color data is typically represented by quantitative values of three color components, either RGB (Red, Green, Blue) or CYM (Cyan, Yellow, Magenta). The quantitative values of the color components range from a minimum quantitative value of 0.00 for a color component not present in the color data to a maximum quantitative value of 1.00 for a color component present in the color data at its highest intensity. The conversion methods transform the quantitative values into a shade of gray represented by a value between 0.00 and 1.00 known as the xe2x80x9cY valuexe2x80x9d (also referred to as the xe2x80x9cluminancexe2x80x9d) of the represented data.
For example, one method well known in the art is the NTSC conversion method. The user specifies the shade of gray desired for each color component when that color component is at its maximum quantitative value and the other color components are absent from the color data. This user-specified shade of gray is referred to as a xe2x80x9ctarget value.xe2x80x9d In other words, the user first specifies a target value for the situation in which the quantitative value of the R component is 1.00 and the quantitative values for the G and B components are 0.00. Likewise, the user specifies a target value for the situation in which the quantitative value of the xe2x80x9cGxe2x80x9d component is 1.00 and the quantitative values for the R and B components are 0.00. Finally, the user specifies a target value for the situation in which the quantitative value of the B component is 1.00 and the quantitative values for the R component and the G component are 0.00. The NTSC conversion is then applied and a Y value indicating a shade of gray is derived for each combination of color components as the color data is processed.
A major drawback of the NTSC conversion is that the user is only allowed to specify the RGB components. As a result, the conversion does not result in high quality gray data output.
To overcome this drawback, one method utilizes an interpolated table lookup that allows the user to specify a gray target value for all nodes of a three dimensional memory array. That is, the user specifies target Y values for not only the RGB components, but also the combinations of all values of RGB.
The lookup table is stored in memory and contains a target value for particular combinations of color component quantitative values. When a combination of color component quantitative values is input that is not listed in the table, an interpolation routine utilizes the target values in the table to derive the proper Y value for the color data input. Such a method has been disclosed in U.S. patent application Ser. No. 09/181,063 filed on Oct. 27, 1998, entitled xe2x80x9cMethod of Determining Gray Values.xe2x80x9d It is noted that the assignee of this patent application is Hewlett-Packard Company, the assignee of the present application.
The interpolated table lookup method provides high quality gray definition of color data because of having more user-defined target values to reference and because the user is able to specify target values for many combinations of RGB values. However, this method requires high computational overhead because it requires significant memory as well as extended processor allocation. In today""s competitive environment of low-cost computers, printers and electronic instruments, there is a need for a method to convert color data to gray data wherein the user may specify target values for the higher order color components to obtain high quality output while maintaining computational efficiency
The present invention concerns a system and method for converting color data to gray data by allowing the user to define target values for all color components and combinations thereof, but without high computational overhead.
In the described implementation, the user specifies target values for the color component terms R, G, B, C, M, Y and W. Each target value specifies a is shade of gray to be associated with each color component term. These target values are stored in a target value table in memory. A coefficient is associated with each color component term and a conversion transformation is determined using the color component terms and the associated coefficients.
Gray scale boundary conditions based on the conversion transformation are generated wherein each boundary condition is represented as an equation that is the sum of products of the maximum quantitative value of each color component represented in the color data and the coefficient associated with those color component terms. The resulting set of equations are solved to determine the numerical values of each coefficient.
The quantitative values of all color components present in the color data are then received and multiplied by their respective coefficients in the conversion transformation to derive a Y value specifying a shade of gray.
After a Y value has been determined, a data correction process is applied to the Y value so that the gray data more closely exhibits desirable neutral axis behavior within a three-dimensional color space defined by the RGB components. This allows the neutral axis behavior to be modified independently of the gray target values selected for the saturated colors, RGB.
Color data is repeatedly received and converted into gray data utilizing the conversion transformation and the correction process. This results in improved output quality of the gray data while maintaining a low computational overhead environment.